107 research outputs found
Internalising modified realisability in constructive type theory
A modified realisability interpretation of infinitary logic is formalised and
proved sound in constructive type theory (CTT). The logic considered subsumes
first order logic. The interpretation makes it possible to extract programs
with simplified types and to incorporate and reason about them in CTT.Comment: 7 page
The Use of Trustworthy Principles in a Revised Hilbertās Program
After the failure of Hilbertās original program due to GoĢdelās second incompleteness theorem, relativized Hilbertās programs have been sug-gested. While most metamathematical investigations are focused on car-rying out mathematical reductions, we claim that in order to give a full substitute for Hilbertās program, one should not stop with purely mathe-matical investigations, but give an answer to the question why one should believe that all theorems proved in certain mathematical theories are valid. We suggest that, while it is not possible to obtain absolute certainty, it is possible to develop trustworthy core principles using which one can prove the correctness of mathematical theories. Trust can be established by both providing a direct validation of such principles, which is nec-essarily non-mathematical and philosophical in nature, and at the same time testing those principles using metamathematical investigations. We investigate three approaches for trustworthy principles, namely ordinal no-tation systems built from below, Martin-LoĢf type theory, and Fefermanās system of explicit mathematics. We will review what is known about the strength up to which direct validation can be provided. 1 Reducing Theories to Trustworthy Principles In the early 1920ās Hilbert suggested a program for the foundation of mathemat-ics, which is now called Hilbertās program. As formulated in [40], āit calls for a formalization of all of mathematics in axiomatic form, together with a proof that this axiomatization of mathematics is consistent. The consistency proof it-self was to be carried out using only what Hilbert called āfinitary ā methods. The special epistemological character of finitary reasoning then yields the required justification of classical mathematics. ā Because of GoĢdelās second incomplete-ness theorem, Hilbertās program can be carried out only for very weak theories
Programming with monadic CSP-style processes in dependent type theory
We introduce a library called CSP-Agda for representing processes in the dependently typed theorem prover and interactive programming language Agda. We will enhance processes by a monad structure. The monad structure facilitates combining processes in a modular way, and allows to define recursion as a direct operation on processes. Processes are defined coinductively as non-well-founded trees. The nodes of the tree are formed by a an atomic one step relation, which determines for a process the external, internal choices, and termination events it can choose, and whether the process has terminated. The data type of processes is inspired by Setzer and Hancock's notion of interactive programs in dependent type theory. The operators of CSP will be defined rather than atomic operations, and compute new elements of the data type of processes from existing ones. The approach will make use of advanced type theoretic features: the use of inductive-recursively defined universes; the definition of coinductive types by their observations, which has similarities to the notion of an object in object-oriented programming; the use of sized types for coinductive types, which allow coinductive definitions in a modular way; the handling of finitary information (names of processes) in a coinductive settings; the use of named types for automatic inference of arguments similar to its use in template Meta-programming in C++; and the use of interactive programs in dependent type theory.We introduce a simulator as an interactive program in Agda. The simulator allows to observe the evolving of processes following external or internal choices. Our aim is to use this in order to simulate railway interlocking system and write programs in Agda which directly use CSP processes
How to Reason Coinductively Informally
We start by giving an overview of the theory of indexed inductively and coinductively defined sets. We consider the theory of strictly positive indexed inductive definitions in a set theoretic setting. We show the equiv-alence between the definition as an indexed initial algebra, the definition via an induction principle, and the set theoretic definition of indexed in-ductive definitions. We review as well the equivalence of unique iteration, unique primitive recursion, and induction. Then we review the theory of indexed coinductively defined sets or final coalgebras. We construct indexed coinductively defined sets set theoretically, and show the equiv-alence between the category theoretic definition, the principle of unique coiteration, of unique corecursion, and of iteration together with bisimula-tion as equality. Bisimulation will be defined as an indexed coinductively defined set. Therefore proofs of bisimulation can be carried out corecur-sively. This fact can be considered together with bisimulation implying equality as the coinduction principle for the underlying coinductively de-fined set. Finally we introduce various schemata for reasoning about coin-ductively defined sets in an informal way: the schemata of corecursion, of indexed corecursion, of coinduction, and of corecursion for coinductively defined relations. This allows to reason about coinductively defined sets similarly as one does when reasoning about inductively defined sets using schemata of induction. We obtain the notion of a coinduction hypothesis, which is the dual of an induction hypothesis.
Copatterns: programming infinite structures by observations
This article which will appear in the proceedings of POPL 2013 in January 2013, introduces the dual of pattern matching, as it is used in functional programming for defining functions, by copatterns. Whereas data types are eliminated by pattern matching, i.e. by giving giving a choice for each constructor, coalgebras are introduced by copatterns, namely by giving the result of each eliminator. Patterns and copatterns are entirely symmetrical. This article introduces a language which allows to define data types, coalgebras, and functions by nested pattern and copattern matching. An operational semantics is introduced, and type soundness and subject reduction is shown
An extended predicative definition of the Mahlo universe
This article, which will be reviewed by Zentralblatt Math, contains the first predicative definition of the Mahlo universe, by extending the concept of predicativity. This is a break through result, since it introduces a methodology which allows to justify proof theoretically much stronger theories than were known before predicatively.Before this article predicativity was limited to inductive recursive definition, and it was widely believed that it is impossible to go beyond that notion in a predicative way. With this article for the first time this barrier has been passed using a novel approach
Interactive Programs and Weakly Final Coalgebras in Dependent Type Theory (Extended Version)
We reconsider the representation of interactive programs in dependent type theory that the authors proposed in earlier papers. Whereas in previous versions the type of interactive programs was introduced in an ad hoc way, it is here defined as a weakly final coalgebra for a general form of polynomial functor. The are two versions: in the first the interface with the real world is fixed, while in the second the potential interactions can depend on the history of previous interactions. The second version may be appropriate for working with specifications of interactive programs. We focus on command-response interfaces, and consider both client and server programs, that run on opposite sides such an interface. We give formation/introduction/elimination/equality rules for these coalgebras. These are explored in two dimensions: coiterative versus corecursive, and monadic versus non-monadic. We also comment upon the relationship of the corresponding rules with guarded induction. It turns out that the introduction rules are nothing but a slightly restricted form of guarded induction. However, the form in which we write guarded induction is not recursive equations (which would break normalisation -- we show that type checking becomes undecidable), but instead involves an elimination operator in a crucial way
- ā¦